import json
from models import db, Book  # 导入 db 和 Book 模型
from app import app  # 导入 Flask app 实例

# 加载书籍数据并插入到数据库中
def load_books_data():
    with open('books.json', 'r', encoding='utf-8') as f:
        return json.load(f)

def insert_books():
    books_data = load_books_data()

    with app.app_context():  # 进入应用上下文
        for book_data in books_data:
            # 创建书籍实例
            book = Book(
                title=book_data['title'],
                author=book_data.get('author'),  # 使用 get，避免字段缺失
                image=book_data.get('image'),
                description=book_data.get('description'),
                tags=book_data.get('tags', ''),  # 如果 tags 字段为空则默认空字符串
                epub_path=book_data.get('epub_path')
            )

            # 添加书籍到数据库
            db.session.add(book)

        # 提交事务
        db.session.commit()
        print(f"成功将 {len(books_data)} 本书籍添加到数据库！")

if __name__ == '__main__':
    insert_books()
